Skip to content

Update jruby-version to v10 - autoclosed#20

Closed
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/major-jruby-version
Closed

Update jruby-version to v10 - autoclosed#20
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/major-jruby-version

Conversation

@renovate

@renovate renovate Bot commented May 12, 2026

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Type Update Change
org.jruby:jruby-base dependencies major 9.4.15.010.1.0.0
org.jruby:jruby-stdlib dependencies major 9.4.15.010.1.0.0

Release Notes

jruby/jruby (org.jruby:jruby-base)

v10.1.0.0: JRuby 10.1.0.0

Compare Source

The JRuby community is pleased to announce the release of JRuby 10.1.0.0.

JRuby 10.1.0.x targets Ruby 4.0 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward!

JRuby 10.1: Experimenting and Evolving

JRuby 10.1.0.0 is our first major release since catching up with Ruby compatibility. We have used this opportunity to explore many experimental optimizations and improvements we have been chasing for many years. Ruby 4.0 compatibility is largely complete, but there will be additional features added in update releases. We also plan to continue with large scale experiments in subsequent updates, and recommend production users continue to use JRuby 10.0 while we work toward stabilization of the 10.1 series.

Here's an overview of the major enhancments already in JRuby 10.1.0.0 and others planned for update releases in the coming months.

Reduced Object Size

In JRuby 10.1 all objects have been reduced in size by 8 bytes, bringing the base object size down from 32 bytes to 24 bytes. This translates into smaller objects across the system, reduced GC load, higher allocation throughput, and better cache locality.

On JVM versions that support Compact Object Headers (JEP 450: "Project Lilliput") the base object size can be further reduced to 16 bytes, 40% smaller than objects in the standard Ruby implememtation.

Evolving Strings, Arrays, and Hashes

During the upcoming JRuby 10.1 update releases, we plan to introduce new versions of String, Array, and Hash that are optimized for memory compactness, concurrency, or integration with other JVM languages. To support these features, we have made the internal implementations RubyArray and RubyHash into abstract classes and deprecated the direct constructors for RubyString. Please test your JRuby extension code and make sure it does not call abstract or deprecated constructors.

Smaller Numeric Representations

JRuby's internal class for representing 64-bit signed Integer values, RubyFixnum, has been split into two versions: LongFixnum and ShortFixnum. Combined with the reduced size of objects overall, this reduces the size of these long and short-ranged Integer objects from 40 bytes to 32 bytes or 24 bytes (24 bytes or 16 bytes if using Compact Object Headers). The size of Float objects have similarly been reduced from 40 bytes to 32 bytes. These size reductions help improve the performance of numeric algorithms and reduce impact to the heap and GC of boxing numeric values.

Cross-platform Prism Parser

JRuby 10.1 ships with support for the Prism Ruby parser, packaged as a set of pre-optimized native builds (for Windows, Linux, and MacOS on x86_64 or arm64) or as a WASM build on other platforms. We're still working out a few remaining features, but we encourage experimenters to enable it by passing -Xparser.prism to JRuby. We plan to make this the default parser once the remaining issues are solved.

Direct Argument Passing

We have also laid the groundwork to start passing all forms of method arguments on the call stack, avoiding boxed collections for most optional and keyword arguments. In upcoming JRuby 10.1 releases, we will begin to connect these call paths up for both pure-Ruby and native (Java) method targets, eliminating box allocation and drastically improving the peformance of such forms. Watch this space for rapid improvements.

New Policy for EOL and LTS Releases

With the release of JRuby 10.1, we are moving JRuby 9.4 into a "soft" EOL status. This means we will no longer be doing regular OSS release updates of JRuby 9.4, but users may get in contact with us to sponsor continued support. JRuby 10.0 will be our stable LTS release until April 2028 and we recommend all users upgrade or get in contact with us for assistance. JRuby 10.1 will be our "tip" release line, with many exciting optimizations and enhancements due to land over the next several months.

Going forward, we will provide a new LTS baseline release every two years, starting in spring of 2027, and alternating years will be considered as edge or development versions without LTS guarantees. This will allow us a free hand to keep bringing you more experimental features while still providing a stable baseline for more conservative users.

Try JRuby Today!

Users can install JRuby 10.1 through the usual means, and we encourage you to give it a try and let us know how it handles your applications and libraries. We have much more planned for the 10.1 updates and hope to move fast and push the edges of what's possible with Ruby on the JVM.

59 Issues and PRs resolved for 10.1.0.0

v10.0.6.0: JRuby 10.0.6.0

Compare Source

The JRuby community is pleased to announce the release of JRuby 10.0.6.0.

JRuby 10.0.6.x targets Ruby 3.4 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward! @​chadlwilson, @​kares, @​sampokuokkanen

Notable Changes:

Standard Library
Java Integration
  • Performance and consistency improvements for passing a block or proc as the implementation of a Java interface. (#​1401, #​9401, #​9424)
23 Issues and PRs resolved for 10.0.6.0

v10.0.5.0: JRuby 10.0.5.0

Compare Source

The JRuby community is pleased to announce the release of JRuby 10.0.5.0.

JRuby 10.0.5.x targets Ruby 3.4 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward! @​evaniainbrooks, @​kares, @​chadlwilson, #jimtng

Compatibility

  • Fixed: Two bugs in the JIT compiler that broke certain super calls and defined_method yields. (#​8944, #​8946, #​9310, #​9349)
  • Fixed: Fiber#raise left the fiber in an resumable state by not correctly transfering control. (#​9297, #​9356)
  • Fixed: Connecting a socket using nonblocking operations failed to complete the establishment of the connection. This affected Redis users, among other cases. (#​9304, #​9305)
  • Fixed: Process#detach raised a NullPointerException if called from a non-main thread. (#​9314, #​9311)

JVM Integration

  • Java 26 is officially supported. (#​9332)

Platform Integration

  • New platform support: The native library backend for JRuby, JNR, has been updated to include support for the RISCv64 architecture.
  • Fixed on Windows: File#flock used unsupported native operations on Windows, causing it to raise errors. This affected the "logger" library, among other cases. (#​9347, #​9348)
  • Fixed on Windows: IO#popen failed to pass keyword arguments if also given a leading environment hash. (#​9351, #​9352)

Stability

43 Issues and PRs resolved for 10.0.5.0

v10.0.4.0: JRuby 10.0.4.0

Compare Source

The JRuby community is pleased to announce the release of JRuby 10.0.4.0.

JRuby 10.0.4.x targets Ruby 3.4 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward! @​evaniainbrooks, @​katafrakt, @​mrnoname1000

Standard Library

  • The syslog library moves to bundled gems. (#​9198)
  • The unicode_normalize library is now thread-safely loaded as an internal library (#​9231, #​9232)
43 Issues and PRs resolved for 10.0.4.0

v10.0.3.0: JRuby 10.0.3.0

Compare Source


layout: post
title: JRuby 10.0.3.0 Released

The JRuby community is pleased to announce the release of JRuby 10.0.3.0.

JRuby 10.0.3.x targets Ruby 3.4 compatibility.

Thank you to our contributors this release, you help keep JRuby moving forward! @​mrnoname1000, @​ngr-ilmarh, @​Earlopain, @​philr, @​jotamartos, @​kares, @​aleksandrs-ledovskis, @​trinistr, @​katafrakt, @​chadlwilson, @​khasinski, @​evaniainbrooks

Compatibility

  • JRuby now reports RbConfig::CONFIG['arch'] without a version number, as universal-java. This allows using different JDK versions without triggering RubyGems missing extension warnings for installed gems. The host Java version is still available as RbConfig::CONFIG['arch_version']. [#​9107]

Standard Library

  • The non-gem standard library is upgraded to Ruby 3.4.5 [#​8967]
  • rexml is updated to 3.4.4 to address CVE-2025-58767. [#​9011]
  • syslog is moved to a default gem at version 0.4.0. The syslog gem now includes JRuby support. [#​9109], ruby/syslog#1
  • strscan is updated to 3.1.7. [#​9159]

Documentation

  • Ruby ri documentation for core and standard library are now included in the release distribution. [#​9049], [#​9052]

All Issues/PRs

  • #​8707 [WARNING: A terminally deprecated method in sun.misc.Unsafe has been called][#​8707]
  • #​8727 [Cannot install latest rubocop][#​8727]
  • #​8730 [Launcher: Defensive fixes][#​8730]
  • #​8758 [Require is not working for .class file if the class is inside a module since 9.3.0][#​8758]
  • #​8810 [Possible fix for 8809][#​8810]
  • #​8923 [NameError for autoloaded constant with private_constant][#​8923]
  • #​8934 [JRuby under Java 22+ always thinks it's running under a TTY][#​8934]
  • #​8940 [Verify to_s is string or fall back on anyToString][#​8940]
  • #​8947 [New check for System.console tty on JDK 22+][#​8947]
  • #​8955 [Range#count always returns size for Integer bounds][#​8955]
  • #​8956 [Handle argument or block passed to Range#count][#​8956]
  • #​8958 [Concurrent requires can lead to StringIndexOutOfBoundsException][#​8958]
  • #​8960 [Fix index -1 error while searching for feature path][#​8960]
  • #​8962 [Upgrade polyglot and remove openssl lib hack][#​8962]
  • #​8967 [Update stdlib to 3.4.5 and clean up old files][#​8967]
  • #​8975 [Use RuboCop to clean up poms (10.x)][#​8975]
  • #​8976 [Regression in keyword argument matching in JRuby v10.0.1.0][#​8976]
  • #​8978 [Additional fixes for scheme-based globbing][#​8978]
  • #​8984 [glob refactoring][#​8984]
  • #​8985 [Fix language spec where error string changed][#​8985]
  • #​8987 [InvokeDynamicSupport.findVirtual fails with IllegalAccessException: symbolic reference class is not accessible][#​8987]
  • #​8989 [Explicitly request access before Lookup.find*][#​8989]
  • #​8994 [autoload + private_constant do not play well together][#​8994]
  • #​8995 [private_constant should just update existing autoload][#​8995]
  • #​8996 [Avoid binding unreadable modules' classes][#​8996]
  • #​8998 [Time#localtime incorrectly treats zero offset as UTC (regression in v10.0.2.0)][#​8998]
  • #​9006 [Consider .class a source extension during search][#​9006]
  • #​9007 [Handle warn(foo, uplevel: nil)][#​9007]
  • #​9009 [Encoding a string with undefined chars fails with NoMethodError][#​9009]
  • #​9010 [Fix "+00:00" and 0 being treated as UTC by Time#localtime and Time.at][#​9010]
  • #​9011 [Update rexml gem to solve CVE-2025-58767][#​9011]
  • #​9016 [[fix] regression calling static hash() method on Java proxy][#​9016]
  • #​9017 [can not use Java class with static hash() method][#​9017]
  • #​9018 [Parser does not convert newlines reading \r\n on Windows][#​9018]
  • #​9019 [We need to remove \r from heredoc strings][#​9019]
  • #​9021 [Retire safe double processing utilities][#​9021]
  • #​9024 [Move all main classes to org.jruby.main package][#​9024]
  • #​9027 [Add "since" to bare Deprecated annotations][#​9027]
  • #​9035 [IO#read does not clear code-range for buffer argument][#​9035]
  • #​9036 [fix: clear code-range when re-using a string buffer][#​9036]
  • #​9038 [Add opens and native access to all jar manifests][#​9038]
  • #​9039 [Update all jnr dependencies][#​9039]
  • #​9041 [Migrate .java-version contents to .jruby.release][#​9041]
  • #​9049 [ri docs are not available for core][#​9049]
  • #​9050 [Marshal fails to load an encoding with an encoding ivar][#​9050]
  • #​9051 [Ignore encoding when unmarshaling an Encoding][#​9051]
  • #​9052 [Download and include in dist CRuby's rdoc data][#​9052]
  • #​9058 [Implement efficient unshifting][#​9058]
  • #​9059 [Reserve extra space before elements when unshifting][#​9059]
  • #​9063 [Hash's compare_by_identity state does not marshal][#​9063]
  • #​9065 [Preserve compare_by_identity for marshaled Hash][#​9065]
  • #​9068 [Windows CI spec runs][#​9068]
  • #​9073 [fix: Permit overriding of JSA file location using ENV variable][#​9073]
  • #​9084 [object_id improvements][#​9084]
  • #​9094 [Implement GC.config [Ruby 3.4]][#​9094]
  • #​9097 [Update jruby-openssl to v0.15.5 to resolve BouncyCastle 1.79 vulnerability (sonatype-2025-001911).][#​9097]
  • #​9098 [Fix CoverageData.mergeLines when coverage increases][#​9098]
  • #​9101 [Cached fixnums for immediate values][#​9101]
  • #​9103 [Update jruby-openssl to 0.15.5][#​9103]
  • #​9106 [Use smaller default size for many collections][#​9106]
  • #​9107 [Separate Java version out of rbconfig 'arch'][#​9107]
  • #​9108 [Tidy up default gems][#​9108]
  • #​9109 [Switch to syslog gem][#​9109]
  • #​9110 [Calling inspect on proc resets line in source_location][#​9110]
  • #​9112 [Prevent modifying state in RubyProc][#​9112]
  • #​9117 [Add file path to error message when unlinking non-existing file][#​9117]
  • #​9122 [Unexpected jruby.sh error messages on Windows][#​9122]
  • #​9127 [fix(launcher): correct parsing of java release files under Bash/msys2 etc on Windows][#​9127]
  • #​9138 [Copy Data type's var table manager with new realClass][#​9138]
  • #​9141 [refactorings and cleanup motivated by error-prone][#​9141]
  • #​9142 [Change GC's methods from module_function to metaclass methods][#​9142]
  • #​9145 [Never trust external content for FString][#​9145]
  • #​9152

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about these updates again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate Bot added dependencies Pull requests that update a dependency file renovate labels May 12, 2026
@renovate renovate Bot force-pushed the renovate/major-jruby-version branch 3 times, most recently from 4879f5a to 475c881 Compare July 1, 2026 12:12
@renovate renovate Bot force-pushed the renovate/major-jruby-version branch from 475c881 to 6e847fd Compare July 1, 2026 12:48
@Sharpie Sharpie marked this pull request as draft July 1, 2026 16:05
@Sharpie

Sharpie commented Jul 1, 2026

Copy link
Copy Markdown
Member

Marking as draft for now as there is a bit of work to do before moving to JRuby 10.

@renovate renovate Bot changed the title Update jruby-version to v10 Update jruby-version to v10 - autoclosed Jul 2, 2026
@renovate renovate Bot closed this Jul 2, 2026
@renovate renovate Bot deleted the renovate/major-jruby-version branch July 2, 2026 12:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file renovate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant